package ar.com.ctrln.persistence.model.factibilidad;

import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import ar.com.ctrln.persistence.model.organizacion.TipoActividad;
import ar.com.ctrln.persistence.model.organizacion.TipoOrganizacion;
import ar.com.ctrln.persistence.model.persona.Direccion;
import ar.com.ctrln.persistence.model.persona.Telefono;

@Entity
@Table(name = "FACTIBILIDAD_CLIENTE")
public class FactibilidadCliente extends Factibilidad {

	@Column
	private String cuit_cuil;

	@Column
	private String razonSocial;

	@Column
	private String tipoIva;

	@Column
	private String sitioWeb;

	@Column
	private String email;

	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
	@JoinTable(name = "FACTIBILIDAD_CLIENTE_TELEFONO", joinColumns = { @JoinColumn(name = "id_factibilidad") }, inverseJoinColumns = { @JoinColumn(name = "id_telefono") })
	private Set<Telefono> telefonos;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_tipo")
	private TipoOrganizacion tipoOrganizacion;

	@OneToOne
	private Direccion direccion;

	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
	@JoinColumn(name = "id_tipoActividad")
	private TipoActividad tipoActividad;

	@Column
	private double totalFactibilidad;

	public FactibilidadCliente() {
	}

	public String getRazonSocial() {
		return razonSocial;
	}

	public void setRazonSocial(String razonSocial) {
		this.razonSocial = razonSocial;
	}

	public String getTipoIva() {
		return tipoIva;
	}

	public void setTipoIva(String tipoIva) {
		this.tipoIva = tipoIva;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Set<Telefono> getTelefonos() {
		return telefonos;
	}

	public void setTelefonos(Set<Telefono> telefonos) {
		this.telefonos = telefonos;
	}

	public TipoOrganizacion getTipoOrganizacion() {
		return tipoOrganizacion;
	}

	public void setTipoOrganizacion(TipoOrganizacion tipoOrganizacion) {
		this.tipoOrganizacion = tipoOrganizacion;
	}

	public Direccion getDireccion() {
		return direccion;
	}

	public void setDireccion(Direccion direccion) {
		this.direccion = direccion;
	}

	public void setTipoActividad(TipoActividad tipoActividad) {
		this.tipoActividad = tipoActividad;
	}

	public TipoActividad getTipoActividad() {
		return tipoActividad;
	}

	public void setCuit_cuil(String cuit_cuil) {
		this.cuit_cuil = cuit_cuil;
	}

	public String getCuit_cuil() {
		return cuit_cuil;
	}

	public void setSitioWeb(String sitioWeb) {
		this.sitioWeb = sitioWeb;
	}

	public String getSitioWeb() {
		return sitioWeb;
	}

	public void setTotalFactibilidad(double totalFactibilidad) {
		this.totalFactibilidad = totalFactibilidad;
	}

	public double getTotalFactibilidad() {
		return totalFactibilidad;
	}

}
